package com.vepick.vue.interfaceClient;

import java.sql.*;
import java.util.Scanner;

import com.vepick.metier.requetes.Requetes_client;
import com.vepick.metier.requetes.Requetes_station;
import com.vepick.metier.requetes.Requetes_stationAbo;
import com.vepick.metier.requetes.Requetes_stationTicket;

/*
 * Vue qui sert � valider le retour d'un v�lo
 */
public class InterfaceRendreUnVeloTicket {

	public static final int RENDRE_UN_VELO = 1;
	public static final int RETOUR = 6;
	public static final int QUITTER_APPLICATION = 99;

	public static void ouvrirInterfaceRendreUnVeloTicket(Connection conn) throws SQLException {

		// Variables locales n�cessaires au fonctionnement du programme
		@SuppressWarnings("resource")
		Scanner scanner = new Scanner(System.in);
		int choix = 0;
		int idStation;
		int idClient= -1;
		String codeClient;
		int etatVelo = -1;
		
		System.out.println("Indiquer la station ou vous vous trouvez");
		idStation=scanner.nextInt();
		int nbBorneDispo=Requetes_station.NbBorneDispoEnStation(conn, idStation);
		System.out.println("Souhaitez vous declarer le velo endommage? (oui=0, non=1)");
		etatVelo = scanner.nextInt();

		// Traitement du choix du client
		while (choix != QUITTER_APPLICATION) {

			// Affichage des diff�rentes fonctionnalit�s
			afficherFonctionnalites(nbBorneDispo);

			// Fonctionnalit� tapp�e par le client
			choix = scanner.nextInt();

			// Redirection vers l'interface choisie
			switch (choix) {
			case RENDRE_UN_VELO:
				System.out.println("Indiquer le code du ticket");
				codeClient=scanner.next();
				System.out.println("Indiquer l'identifiant du ticket");
				idClient=scanner.nextInt();		
				if(Requetes_client.connecterTicket(conn, idClient, codeClient)==1){
					Requetes_stationTicket.rendreLocationTicket(conn, idStation, idClient, etatVelo);
				}
				InterfaceClientNonAbo.ouvrirInterfaceClientNonAbo(conn);
				break;

			case RETOUR:
				InterfaceClientNonAbo.ouvrirInterfaceClientNonAbo(conn);
				break;
			case QUITTER_APPLICATION:
				try {
					conn.close();
					System.out.println("A bientot!");
					System.exit(0);
				} catch (SQLException e) {
					System.out
							.println("Erreur dans la fermeture de la connexion");
					System.exit(-1);
					e.printStackTrace();
				}
				break;
			default:
				break;
			}
		}
	}

	private static void afficherFonctionnalites(int nbVelo) {
		System.out.println("#######################################################");
		System.out.println("# Rendre un velo: "+nbVelo+"  place(s) disponible(s)  #");
		System.out.println("#######################################################");
		System.out.println("\n\n");
		System.out.println("Rendre un velo : " + RENDRE_UN_VELO);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Retour a l'ecran principal : " + RETOUR);
		System.out
				.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
		System.out.println("Quitter l'application : " + QUITTER_APPLICATION);
	}
}
